#include "norequirement.h"
#include "course.h"

/// Evaluates the requirement as a fulfilled requirement.
/// \return Returns true always, since the requirement is fulfilled.
bool NoRequirement::evaluate(Context&)
{
    return true;
}

/// Generates a string representation of the requirement.
/// \param context Merely fulfills the interface signature of the function.
/// Not used.
/// \return The string representation of "no-requirement" requirement.
std::string NoRequirement::to_string(Context&)
{
    return "No Requirement";
}

/// Returns 0 as the count of requirements this no-requirement requirement
/// presents.
/// \param context Merely fulfills the interface signature of the function.
/// Not used.
/// \return The number of requirements this requirement presents, which is
/// is always 0.
std::size_t NoRequirement::count(Context&)
{
    return 0;
}

/// A dummy definition to complete implementation of courses extraction.
/// \return An empty list.
std::list<Course> NoRequirement::courses()
{
    return std::list<Course>();
}
